1. Field of the Invention
The present invention relates generally to computer networks and, more particularly, to collaborative computing over a computer network.
2. Description of the Related Art
Traditional collaborative computing tools allow computer users at different locations to communicate via a computer network and share documents or applications stored and/or executed on one the user's computers. While both peer-to-peer and client-server communication models have been used in the past, web-based collaborative tools generally employ a client-server model.
For example, client-server application sharing (also discussed in the context of “distributed computing”) is described in U.S. Pat. No. 5,434,852 “Distributed Processing Architecture for Control of Broadband and Narrowband Communication Networks;” U.S. Pat. No. 5,887,170 “System for Classifying and Sending Selective Requests . . . ;” and U.S. Pat. No. 6,038,593 “Remote Application Control for Low Bandwidth Application Sharing,” all incorporated herein by reference in their entireties. Other group communication techniques are described by Ulrick Hall and Franz J. Hauck, “Promondia: A Java-Based Framework for Real-time Group Communication in the Web,” Proceedings of Sixth International World Wide Web Conference (Apr. 7–11, 1997); Lane Boyd, “Taking Collaboration Into Orbit,” Computer Graphics World, Vol.21, No. 9, p. 36 (September 1998); and Eric Ly, “Distributed Java Applets for Project Management on the Web,” IEEE Internet Computing Online, Vol. 1, No. 3 (May/June 1997), all incorporated herein by reference in their entireties.
International Telecommunications Union (ITU) Standard T.120 is a family of open standards that provides both communications and applications protocols to support real-time multipoint data communications for collaboration and conferencing, among other uses. This standard is outlined in A Primer on the T.120 Series Standard by DataBeam Corp. (May 14, 1997), incorporated herein by reference in its entirety.
FIG. 1A is a block diagram illustrating the communication scheme used for an exemplary traditional collaborative computer system 100. In FIG. 1A, client computers 110n (where n=A, B, C . . . ) can connect to server computers 120n over a global-area computer network 130 (e.g., the Internet). As used herein, the numeral n appended to a reference number does not imply any correspondence among elements having different numerals (e.g., client computer 110A bears no relationship to server computer 120A). FIG. 1B is a block diagram illustrating the actual communications channels established between client computers 110n and server computers 120n to set up two conferences between users of client computers 110A and 110B on the one end and 110C and 110D on the other. As is readily apparent from inspection of FIG. 1B, each conference is handled by a single server computer 120n. This model performs satisfactorily for conferences having a small number of participants and conferences that do not require fault tolerance. However, as the number of participants in a conference increases, the computing power of server computer 120n becomes a bottleneck. Furthermore, if the particular server computer 120n that is handling a conference malfunctions, the entire conference is disrupted (i.e., server computer 120n represents a single point of failure for the entire system handling that conference). Accordingly, there is a need for an improved collaborative computing system.